import { defHttp } from "@/utils/http";

// ERP 药品基础信息 VO
export interface DrugInfoVO {
	id: number; // ID号(唯一标识),示例值(11754)
	code: string; // 编码
	name: string; // 名称,示例值(李四)
	dosageForm: string; // 剂型
	content: string; // 含量
	groupCode: number; // 分组编码
	typeCode: number; // 类型编码
	productCode: number; // 商品编码
	countryCode: number; // 国家编码
	departmentGroup: number; // 部门组
	insuranceType: number; // 医保类型,示例值(2)
	essential: number; // 必需品
	accountNumber: number; // 账户号
	ingredientName: string; // 成分名称,示例值(芋艿)
	ingredientCode: string; // 成分编码
	quantity: number; // 数量
	groupField: number; // 分组
	registrationNumber: string; // 注册号
	unitPrice: number; // 单价,示例值(20073)
	minQuantity: number; // 最小数量
	salePrice: number; // 销售价,示例值(8813)
	repaymentDays: number; // 还款天数
	dutyDrug: number; // 值班用药
	postIssuance: number; // 后发
	ratio: number; // 比例
	serialNumber: number; // 序号
	imagePath: string; // 图片路径
	typeField: number; // 类型字段
	power: string; // 功率
	printGroup: number; // 打印组
	occupationalRelated: number; // 职业相关
	unitCode: number; // 单位编码
	unit: string; // 单位
	patientType: number; // 病人类型,示例值(1)
	rounding: number; // 取整
	days: number; // 天数
	hidden: number; // 隐藏
	wholeIssue: number; // 整发
	packagingQuantity: number; // 包装数量
	targetCode: number; // 对象编码
	salePrice2: number; // 销售价2
	imageData: string[]; // 图片数据
	productionDosageForm: string; // 生产剂型
	usageDosageForm: string; // 使用剂型
	atcCode: string; // ATC编码
	genericName: string; // 通用名,示例值(李四)
	atcClassificationCode: string; // ATC分类码
	insurancePrice: number; // 医保价格,示例值(21653)
	technologyType: number; // 技术类型,示例值(1)
	priceDifferenceFlag: number; // 差价标识
	abcClassification: number; // ABC分类
	drugType: number; // 药品类型,示例值(1)
	classificationType: number; // 分类类型,示例值(1)
	components: string; // 成分
	indications: string; // 适应症
	contraindications: string; // 禁忌症
	precautions: string; // 注意事项
	pregnancyUsage: string; // 孕期用药
	interactions: string; // 相互作用
	adverseReactions: string; // 不良反应
	dosage: string; // 剂量
	administrationRoute: string; // 给药途径
	methodOfUse: string; // 用法
	warehouseCode: string; // 仓库编码
	bidPrice: number; // 中标价,示例值(32051)
	abbreviation: string; // 首字母缩写
	dialysisFlag: number; // 透析标识
	eachDose: number; // 每次用量
	course: number; // 疗程
	hospitalPreparation: number; // 医院制剂
	phone: string; // 电话
	hospitalCode: string; // 医院编码
	useUnit: string; // 使用单位
	prescriptionOtcFlag: number; // 处方药标识
	pendingApproval: number; // 待审核
	policyNumber: string; // 政策文号
	shortName: string; // 简称,示例值(赵六)
	filterCondition: string; // 过滤条件
	volume: number; // 容量
	rhdClassification: number; // RHD分类
	surcharge: number; // 加成
	manufacturerCode: number; // 生产商编码
	bidCode: string; // 招标编码
	lossRate: number; // 损耗率
	reserveLock: number; // 锁定储备
	paymentObject: number; // 支付对象
	gmpCertification: number; // GMP认证
	stockQuantity: number; // 库存数量
	catalogFlag: number; // 目录标识
	userId: number; // 用户ID,示例值(3558)
	vat: number; // 增值税率
	orderNumber: string; // 订单编号
	appendix3Number: number; // 附录3编号
	medicalLevel: number; // 医疗级别
	departmentCode: string; // 科室编码
	remarks: string; // 备注说明
	bidQuantity: number; // 招标数量
	procurementMethod: number; // 采购方式
	bidStorageQuantity: number; // 招标入库数量
	outsideHours: number; // 下班时间
	bidYear: string; // 招标年份
	contractNumber: string; // 合同编号
	contractDate: string; // 合同日期
	compensationDecision: number; // 补偿决定
	objectGroup: number; // 对象分组
	icdCode: string; // ICD编码
	minimumPrice: number; // 最低价格,示例值(23145)
	hospitalId: number; // 医院ID,示例值(12534)
	regulation22Code: string; // 通知22号编码
	warningGroup: number; // 警告分组
	regulation2182Code: string; // 2182文号
	regulation2182Usage: string; // 2182用法
	hasRecord: number; // 是否有记录
	componentCode5084: string; // 5084成分编码
	doctorCode: string; // 医生编码
	bidUsagePeriod: string; // 招标使用期限
	secondBidQuantity: number; // 第二次招标数量
	warehouseGroup: number; // 仓库分组
	averageQuantity: number; // 平均数量
	hospitalGroup: number; // 医院分组
	largeExpenseFlag: number; // 是否大额费用
	usageMinutes: number; // 使用分钟数
	storageReserveLock: string; // 锁定库存仓库
	insurancePrice2: number; // 医保价格2
	paymentTargetCode: number; // 支付对象编码
	typeCode2: number; // 类型编码2
	warningFlag: number; // 是否警告
	insuranceDrug: string; // 医保药品
	serviceDrug: string; // 服务药品
	defectiveQuantity: number; // 废品数量
	insuranceType2: number; // 医保类型2
	taxExcludedPrice: number; // 不含税价格,示例值(10193)
	bidStatus: string; // 招标状态,示例值(1)
	startDate: string; // 开始日期
	endDate: string; // 结束日期
	sendDate: string; // 发送日期
	approvalDate: string; // 审批日期
	lockReserveTarget: string; // 锁定对象储备
	lockReserveCategory: string; // 锁定类别储备
	usageYear: string; // 使用年份
	productionYear: string; // 生产年份
	source: string; // 来源
	inspectionExpiry: string; // 检验期限
	inspectionDate: string; // 检验日期
	department: string; // 科室
	inspectionUnit: string; // 检验单位
	salesRatioGroup: number; // 销售比例组
	insuranceSales: number; // 医保销售
	serviceSales: number; // 服务销售
	targetCode1: string; // 对象编码
	axName: string; // AX名称,示例值(张三)
	insurance30Days: number; // 30天医保
	ingredientCode30: string; // 30天成分码
	pharmacyCode: string; // 药房编码
	storageConditions: string; // 储存条件
	registrationStatus: string; // 注册状态,示例值(1)
	vatGtgt: number; // 增值税率
	lockInsurance: number; // 锁定医保
	retailPrice: number; // 加成价格,示例值(7458)
	packagingUnit: number; // 包装单位
	additionalFee: number; // 附加费用
	approvalNumber: string; // 审批号
	approvedQuantity: number; // 审批数量
	approvedUnitPrice: number; // 审批单价,示例值(3038)
	storageLocation: string; // 存放位置
	contraindicatedIcd: string; // 禁忌ICD
	hl7Id: string; // HL7标识,示例值(10992)
	preparationSerial: string; // 分装序号
	fileName: string; // 文件名称,示例值(王五)
	standardPriceFlag: number; // 定额价格
	code5086: string; // 5086编码
	paymentStatus: number; // 结算金额,示例值(2)
	regulation130: string; // 通知130号
	vaccineFlag: number; // 疫苗标识
	insuranceQuantity: number; // 医保数量
}

// ERP 药品基础信息 API
export const DrugInfoApi = {
	// 查询药品基础信息分页
	getDrugInfoPage: async (params: any) => {
		return await defHttp.get({ url: `/whs/drugs-bas/page`, params });
	},

	// 查询药品基础信息详情
	getDrugInfo: async (id: number) => {
		return await defHttp.get({ url: `/whs/drugs-bas/get?id=` + id });
	},

	// 新增药品基础信息
	createDrugInfo: async (data: DrugInfoVO) => {
		return await defHttp.post({ url: `/whs/drugs-bas/create`, data });
	},

	// 修改药品基础信息
	updateDrugInfo: async (data: DrugInfoVO) => {
		return await defHttp.put({ url: `/whs/drugs-bas/update`, data });
	},

	// 删除药品基础信息
	deleteDrugInfo: async (id: number) => {
		return await defHttp.delete({ url: `/whs/drugs-bas/delete?id=` + id });
	},

	// 导出药品基础信息 Excel
	exportDrugInfo: async (params: any) => {
		return await defHttp.download({ url: `/whs/drugs-bas/export-excel`, params });
	}
};
